package top.fkxuexi.smartwork.config;


public abstract class SmkConfig {
    /**
     * @return 返回数据库链接地址
     */
    public abstract String getUrl();

    /**
     * @return 返回数据库用户
     */
    public abstract String getUser();

    /**
     * @return 返回数据库用户密码
     */
    public abstract String getPwd();

    /**
     * @return 返回代码生成存放的基础路径
     */
    public abstract String getCodeBasePath();

    /**
     * @return 返回到时候对应生成的xml的代码的位置
     */
    public abstract String getXmlCodeLocation();

    /**
     * 内置controller模板
     */
    public GenerConfig controller = GenerConfig.builder()
            .isMapper(false)
            .templateLocation("/template/ControllerTemplate.ftl")
            .packageName("controller")
            .clazzSuffix("Controller")
            .fileSuffix(".java")
            .build();
    public GenerConfig service = GenerConfig.builder()
            .isMapper(false)
            .templateLocation("/template/ServiceTemplate.ftl")
            .packageName("service")
            .clazzSuffix("Service")
            .fileSuffix(".java")
            .build();
    public GenerConfig serviceImpl = GenerConfig.builder()
            .isMapper(false)
            .templateLocation("/template/ServiceImplTemplate.ftl")
            .packageName("service.impl")
            .clazzSuffix("ServiceImpl")
            .fileSuffix(".java")
            .build();
    public GenerConfig dao = GenerConfig.builder()
            .isMapper(false)
            .templateLocation("/template/DAOTemplate.ftl")
            .packageName("dao")
            .clazzSuffix("DAO")
            .fileSuffix(".java")
            .build();
    public GenerConfig mapper = GenerConfig.builder()
            .isMapper(true)
            .templateLocation("/template/DAOXmlTemplate.ftl")
            .packageName("mappers")
            .clazzSuffix("DAO")
            .fileSuffix(".xml")
            .build();
    public GenerConfig entity = GenerConfig.builder()
            .isMapper(false)
            .templateLocation("/template/EntityTemplate.ftl")
            .packageName("entity")
            .clazzSuffix("")
            .fileSuffix(".java")
            .build();

    /**
     *  获取要生成的模板，可以利用内置的，当然也可以使用自定义的
     * @return
     */
    public abstract GenerConfig[] getGenerConfig();




}
